/**
 * 
 */
package info.niwota.fwrite.imglist;

import java.util.ArrayList;

import android.content.ContentResolver;
import android.content.Context;
import android.net.Uri;

/**
 * @author qiangli
 *
 */
public class ImageList implements IImageList {
	private ArrayList<UriImage> imageList = new ArrayList<UriImage>(3);
	
	public ImageList() {
		
	}

	public void close() {
		imageList.clear();
	}

	public int getCount() {
		return imageList.size();
	}


	public IImage getImageAt(int i) {
		if (i < 0 || i >= imageList.size()) {
			return null;
		}
		return imageList.get(i);
	}

//	public IImage getImageForUri(Uri uri) {
//		for (UriImage i : imageList) {
//			if (uri.equals(i.mUri)) {
//				return i;
//			}
//		}
//		return null;
//	}

//	public int getImageIndex(IImage image) {
//		UriImage i = (UriImage) image;
//		return 0;//return i.;
//	}

	public boolean isEmpty() {
		return (imageList.size() == 0);
	}

//	public boolean removeImage(IImage image) {
//		return false;
//	}

	public boolean removeImageAt(int i) {
		if (i < 0 || i >= imageList.size()) {
			return false;
		}
		imageList.remove(i);
		return true;
	}

	private void add(ContentResolver cr, int loc, Uri uri) {
		UriImage ui = new UriImage(cr, uri);
		imageList.add(loc, ui);
	}
	
	public void save(Context ctx) {
		int size = imageList.size();
		String[] sa = new String[size];
		for (int i = 0; i < size; i++) {
			Uri u = imageList.get(i).fullSizeImageUri();
			sa[i] = u.toString();
		}
		//Preferences.putUris(ctx, sa);
	}
	
	public void restore(Context ctx) {
		String[] sa = null;// Preferences.getUris(ctx);
		if (sa == null || sa.length == 0) {
			return;
		}
//		Key skey = null;
//		try {
//			String[] ksa = Preferences.getLockTempKey(ctx);
//			skey = CryptoUtils.unwrap(ksa);
//		} catch (Exception e) {
//			// TODO Auto-generated catch block
//			e.printStackTrace();
//		}
		ContentResolver cr = ctx.getContentResolver();
		for (int i = 0; i < sa.length; i++) {
			add(cr, i, Uri.parse(sa[i]));
		}
	}

	public Object getItem(int i) {
		// TODO Auto-generated method stub
		return null;
	}
}
